Prerequisites
Proficiency of a programming language, preferably an object-oriented programming language
Objectives
This course aims to acquaint students with the engineering and management methods necessary for the cost-effective development and maintenance of high-quality complex software systems. In particular, this UC discusses the software development lifecycle, from requirements to program maintenance. Leverage the knowledge acquired in other disciplines in the broader context of the software development process. Motivate for software development as an engineering, which integrates the technological aspects of computing with the social and human factors. At the end of the semester, students should: - be capable of describing the principles, concepts and practices of software engineering and software life cycle; - be acquainted with and be capable of applying the required tools and techniques to carry out and manage the various tasks in the development of high quality software; - be capable of explaining the development methods and processes of different types of software systems.
Program
Introduction to Software Engineering. Software Design. Software Development. Software Development Processes. Requirements Engineering. Project Management. Verification and Validation. Software Evolution.
Evaluation Methodology
The evaluation of the Software Engineering course is composed by the following elements: - One project, developed under continuous evaluation, 6 elements per group, with several delivers during the semester: 50% of the final grade, minimum grade 8.0 in 20; - One theoretical exam: 50% of the final grade, minimum grade 9.0 in 20. 50% of the exam will focus on the theory and 50% will focus on the project component. Final Grade The final grade is calculated according to the formula: FinalGrade = 0.5 x E + 0.5 x P - if E < 9.0 => RE - if P < 8.0 => RE - if FinalGrade < 9.5 => RE. Grades from previous years are not accepted (cf. MTP area and Coordination recommendation)
Cross-Competence Component
In this UC, the capacity of teamwork (intrapersonal abilities) and the ability to explain the work (interpersonal abilities) that was performed by the group is trained. Innovative and critical thinking skills (e.g., problem solving strategies and critical thinking) are also trained and evaluated. These capabilities are evaluated in the project component that each group of 6 students has to perform.
Laboratorial Component
The laboratory component aims to promote the best practices of design and implementation of a web software applicagtion as a teamwork. The laboratory component is also dedicated to the practical application and deepening of the concepts and techniques presented in theoretical classes, through more focused exercises as well as in the practical work of the discipline.
Programming and Computing Component
In the program where this UC is offered are ensured the components of Computing and Programming according to MEPP 2122.
More information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490020